]> git.r.bdr.sh - rbdr/super-polarity/blobdiff - Super Polarity/ScreenManager.cs
I have the worst commits ever.
[rbdr/super-polarity] / Super Polarity / ScreenManager.cs
diff --git a/Super Polarity/ScreenManager.cs b/Super Polarity/ScreenManager.cs
new file mode 100644 (file)
index 0000000..04c10a4
--- /dev/null
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace SuperPolarity
+{
+    static class ScreenManager
+    {
+        static Stack<Screen> Screens;
+        static SuperPolarity Game;
+
+        static ScreenManager()
+        {
+            Screens = new Stack<Screen>();
+        }
+
+        static public void Push(Screen screen)
+        {
+            Screens.Push(screen);
+        }
+
+        static public void Pop()
+        {
+            Screens.Pop();
+        }
+
+        static public void Update(GameTime gameTime)
+        {
+            Screens.Peek().Update(gameTime);
+        }
+
+        static public void Draw(SpriteBatch spriteBatch)
+        {
+            foreach (Screen screen in Screens)
+            {
+                screen.Draw(spriteBatch);
+            }
+        }
+
+        internal static void SetGame(SuperPolarity game)
+        {
+            Game = game;
+        }
+    }
+}